<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			// 变量语法（扩展）：
				// 1.更新变量（以最终的值为准）
				var a=1;
				var a=2;//更新变量
				document.write(a);//最终值
				
				// 2.同时声明多个变量时（var简化）
				var b=2,c=3,d=4;//声明b，c，d三个变量
				document.write(a,b,c,d);//同时打印
				
				// 3.不赋值或不声明
				//只声明，不赋值
				var e;
				console.log(e);//undefined（未定义）
				
				//不声明，不赋值
				//console.log(f);//Uncaught ReferenceError: f is not defined（报错）
				
				//不声明，只赋值
				g=6;//不标var，g会变为全局变量
				document.write(g);//正常输出，但不推荐
				
			//小结练习：两个变量实现交换
				//思路：建立临时变量temp，左手的值赋值给临时变量；
				// 左手空掉后，右手的值赋值给左手；
				// 右手空掉后，临时变量讲左手的青苹果赋值给右手。
				
				var leftHead="青苹果";//左手-青苹果
				var rightHead="红苹果";//右手-红苹果
				var temp;//建立临时变量temp
				
				temp=leftHead;//第一步
				console.log("第一步状态：",leftHead,rightHead,temp,"\n");//控制台输出，及时查看步骤
				leftHead=rightHead;//第二步
				console.log("第二步状态：",leftHead,rightHead,temp,"\n");
				rightHead=temp;//第三步（最终）
				console.log("最终状态 ：",leftHead,rightHead,temp);
				
			//数据类型
				//基本数据类型(原始值)--字符串(String);数值(Number);布尔(Boolean);空(null);未定义(undefined);symbol
				//引用数据类型(引用值)--对象(Object)
				
				var num;//不加等号赋值，目前不确定是那种类型
				console.log(typeof num);//检查数据类型（未定义(undefined)）
				
				//js的变量数据类型根据等号右边的值来确定，js是动态的语言，变量类型可以变化
				var num=10;
				console.log(typeof num);//数值(Number)
				
				var num="你好";
				console.log(typeof num);//字符串(String)
				
				//1.数值型（数字）：整数、小数；
				//数值型常用：二进制，八进制，十进制，十六进制
				var num=10;
				var Pi=3.14;
				//2进制（0，1）：
				
				//8进制（0-7）：数字前面加0为八进制
				console.log(010);//实际是8
				console.log(012);//实际是10
				
				//16进制（0-9,a-f）:数字前面加0x为十六进制
				console.log(0x9);//实际是9
				console.log(0x90);//实际是9
				console.log(0x85);//实际是9
				console.log(0xf);//实际是15
					
				//数字型范围Number.MAX_VALUE、Number.MIN_VALUE
				console.log(Number.MAX_VALUE);//数字型最大值
				console.log(Number.MIN_VALUE);//数字型最小值
				console.log(Number.MAX_VALUE*2);//无穷大（Infinity）
				console.log(Number.MIN_VALUE/2);//负无穷（-Infinity）
				
				//NaN
				console.log('字符串'-100)//NaN（not a number）：返回值不会报错，-100不会运行，故得不到结果
				console.log(isNaN(1));//false（isNaN用来判断是否为“非数字”，并且会返回一个布尔值）
				console.log(isNaN("String"));//true（is not a number（非数字））
				
				//2.字符串 string：""或''
			//练习1：（/n换行）
				alert('酷热难耐，火辣的太阳瞎，我挺拔的身姿，成为了最为独特的风景，\n我审视四周，这里，是我的舞台，我就是天地间的王者，\n这一刻，我豪气冲天，终于大喊一声："收破烂啦"~');//换行符\n，引号内双外单
			//练习2：（+连接）
				var age1=prompt("请输入您的年龄：");
				alert("您今年"+age1+"岁啦");//使用加号连接字符串与数字
		</script>
	</body>
</html>